package edu.cdnu.service;

import java.util.List;
import edu.cdnu.common.dto.CatalogueDto;
import edu.cdnu.pojo.CataloguePojo;

public interface CatalogueService {
	
	/**
	 * 通过课程id查询目录 ,state为空默认为1-课程章节
	 * @param courseId
	 * @param state 0-禁用，1-课程章节，2-资源目录
	 * @return
	 */
	public List<CatalogueDto> selectCatalogueDtoListByCourseIdAndState(int courseId,Integer state);
	
	/**
	 * 新增 或 修改 资源目录
	 * @param cataloguePojo
	 */
	public void addOrUpdateCatalogue(CataloguePojo cataloguePojo);
	
	/**
	 * 根据课程id 和 状态 查询出资源的 id的列表
	 * @param courseId
	 * @param state 1-课程章节，2-资源目录
	 * @return
	 */
	public List<Integer> selectCatalogueListByCourseIdAndState(int courseId,Integer state);
	
	/**
	 * 通过课程id查询目录 ,方法重载，
	 * 本来应该返回cataloguePojo，但是用这个一样
	 * @param courseId
	 * @param parent  0-禁用，1-课程章节，2-资源目录
	 * @param state
	 * @return  返回的CatalogueDto里面的children为空没有查询
	 */
	public List<CatalogueDto> selectCatalogueDtoListByCourseIdAndState(int courseId,Integer parent,Integer state);
	
	/**
	 * 通过课程id 查询所有 目录的 叶子节点
	 * @param courseId
	 * @param state  1-课程章节，2-资源目录 为空默认2
	 * @return
	 */
	public List<CataloguePojo> selectLeafCatalogueListByCourseIdAndState(int courseId,Integer state);
}
